#ifndef _PLAYER_H
#define _PLAYER_H

#include <iostream>
#include <ctime>
#include <string>
#include <sstream>
#include "weapon.h"

using namespace std;

class player
{

	public:
		player();
		~player();

		void readPlayerData(string sName);

		void setName(string sName) {name = sName;}
		string getName() { return name;}
		
		void setGender(string sGender) {gender = sGender;}
		string getGender() {return gender;}

		void setRace(string sRace) {race = sRace;}
		string getRace() {return race;}

		void setAge (int sAge) {age = sAge;}
		int getAge() {return age;}

		void setEyeColour(string sEyeColour) {eyeColour = sEyeColour;}
		string getEyeColour() {return eyeColour;}

		void setHairColour(string sHairColour) {hairColour = sHairColour;}
		string getHairColour() {return hairColour;}

		void setSkinColour(string sSkinColour) {skinColour = sSkinColour;}
		string getSkinColour() {return skinColour;}

		void setPlayerClass(string sPlayerClass) { playerClass = sPlayerClass;}

		void setResourceName(string sResName) { resourceName = sResName;}
		string getResourceName() { return resourceName;}

		void setResourceQty(int sResQty) { resourceQty = sResQty;}
		int getResourceQty() { return resourceQty;}

		void setMaxResource(int sMaxRes) { maxResource = sMaxRes;}
		int getMaxResource() { return maxResource;}

		void setHealth(int sHealth) {health = sHealth;}
		int getHealth() {return health;}
		int getMaxHealth() {return maxHealth;}
		int healthCalc();

		int getArmour();
		void setArmour(int sArmour) {armour = sArmour;}

		int getNumMoves() {return numMoves;}
		void setNumMoves(int sNumMoves) { numMoves = sNumMoves;}

		void setCrit (double sCrit) {crit = sCrit;}
		double getCrit();

		void setDodge(double sDodge) {dodge = sDodge;}
		double getDodge();

		void setParry(double sParry) {parry = sParry;}
		double getParry();

		void setCounter(double sCounter) {counter = sCounter;}
		double getCounter();

		void setMiss(double sMiss) {miss = sMiss;}
		double getMiss();


		int getStr() { return strength; }
		void setStr(int newStr) { strength = newStr; }
		int getVit() { return vitality; }
		void setVit(int newVit) { vitality = newVit; }
		int getDex() { return dexterity; }
		void setDex(int newDex) { dexterity = newDex; }
		int getMagic() { return magic;}
		void setMagic(int sMagic) { magic = sMagic;}

		int getExp() { return experiance;}
		void setExp(int sExp) { experiance += sExp;}
		int getGold() { return gold;}
		void setGold(int sGold) { gold = sGold;}

		int getMinDmg();

		int getMaxDmg();

	private:
		string name;
		string gender;
		string race;
		int age;

		string eyeColour;
		string hairColour;
		string skinColour;

		string playerClass;

		string resourceName;
		int resourceQty;
		int maxResource;

		int health;
		int maxHealth;
		int armour;
		int finalArmour;

		int numMoves;

		double crit;
		double dodge;
		double parry;
		double counter;
		double miss;

		int vitality;
		int strength;
		int dexterity;
		int magic;

		int experiance;
		int gold;

		weapon currWeapon;

		int minDmg;
		int maxDmg;
};


#endif